package com.young.common.core.event;

import com.young.interfaces.common.event.model.EventMessage;
import com.young.interfaces.common.event.model.IEvent;

/**
 * 事件订阅
 *
 * @author wangjy
 * @date 2021/10/16 00:05:55
 */
public interface IEventSubscriber<T> {
    /**
     * 订阅者名字
     * 没啥大用
     *
     * @return
     */
    String name();

    /**
     * 订阅的事件
     *
     * @return 订阅的事件
     */
    IEvent[] events();

    /**
     * 事件处理
     *
     * @param message 事件消息
     */
    void process(EventMessage<T> message);
}
